<!DOCTYPE html>
<html>

<head>
  <title>Quarkus 1.2.0.Final released - GraalVM 19.3.1 support, Metrics, Cache extension, and more</title>
  <script id="adobe_dtm" src="https://www.redhat.com/dtm.js" type="text/javascript"></script>
  <script src="/assets/javascript/highlight.pack.js" type="text/javascript"></script>
  <META HTTP-EQUIV='Content-Security-Policy' CONTENT="default-src 'none'; script-src 'self' 'unsafe-eval' 'sha256-ANpuoVzuSex6VhqpYgsG25OHWVA1I+F6aGU04LoI+5s=' 'sha256-ipy9P/3rZZW06mTLAR0EnXvxSNcnfSDPLDuh3kzbB1w=' js.bizographics.com https://www.redhat.com assets.adobedtm.com jsonip.com https://ajax.googleapis.com https://www.googletagmanager.com https://www.google-analytics.com https://use.fontawesome.com; style-src 'self' https://fonts.googleapis.com https://use.fontawesome.com; img-src 'self' *; media-src 'self' ; frame-src https://www.googletagmanager.com https://www.youtube.com; frame-ancestors 'none'; base-uri 'none'; object-src 'none'; form-action 'none'; font-src 'self' https://use.fontawesome.com https://fonts.gstatic.com;">
  <META HTTP-EQUIV='X-Frame-Options' CONTENT="DENY">
  <META HTTP-EQUIV='X-XSS-Protection' CONTENT="1; mode=block">
  <META HTTP-EQUIV='X-Content-Type-Options' CONTENT="nosniff">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Quarkus: Supersonic Subatomic Java">
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:site" content="@QuarkusIO"> 
  <meta name="twitter:creator" content="@QuarkusIO">
  <meta property="og:url" content="https://quarkus.io/blog/quarkus-1-2-0-final-released/" />
  <meta property="og:title" content="Quarkus 1.2.0.Final released - GraalVM 19.3.1 support, Metrics, Cache extension, and more" />
  <meta property="og:description" content="Quarkus: Supersonic Subatomic Java" />
  <meta property="og:image" content="/assets/images/quarkus_card.png" />
  <link rel="canonical" href="https://quarkus.io/blog/quarkus-1-2-0-final-released/">
  <link rel="shortcut icon" type="image/png" href="/favicon.ico" >
  <link rel="stylesheet" href="https://quarkus.io/guides/stylesheet/config.css" />
  <link rel="stylesheet" href="/assets/css/main.css" />
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
  <link rel="alternate" type="application/rss+xml"  href="https://quarkus.io/feed.xml" title="Quarkus">
  <script src="https://quarkus.io/assets/javascript/goan.js" type="text/javascript"></script>
  <script src="https://quarkus.io/assets/javascript/hl.js" type="text/javascript"></script>
</head>

<body class="post">
  <!-- Google Tag Manager (noscript) -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NJWS5L"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <!-- End Google Tag Manager (noscript) -->

  <div class="nav-wrapper">
  <div class="grid-wrapper">
    <div class="width-12-12">
      <input type="checkbox" id="checkbox" />
      <nav id="main-nav" class="main-nav">
  <div class="container">
    <div class="logo-wrapper">
      
        <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_600px_reverse.png" class="project-logo" title="Quarkus"></a>
      
    </div>
    <label class="nav-toggle" for="checkbox">
      <i class="fa fa-bars"></i>
    </label>
    <div id="menu" class="menu">
      <span>
        <a href="/get-started/" class="">Get Started</a>
      </span>
      <span>
        <a href="/guides/" class="">Guides</a>
      </span>
      <span>
        <a href="/community/" class="">Community</a>
      </span>
      <span>
        <a href="/support/" class="">Support</a>
      </span>
      <span>
        <a href="/blog/" class="active">Blog</a>
      </span>
      <span>
        <a href="https://code.quarkus.io" class="button-cta secondary white">Start Coding</a>
      </span>
    </div>
  </div>
      </nav>
    </div>
  </div>
</div>

  <div class="content">
    <div class="post-page grid-wrapper">
  <div class="width-8-12 width-12-12-m doc-content">
    <div class="grid-wrapper">
      <div class="width-12-12">
        <p>
          <a href="/blog"><i class="fas fa-angle-left"></i> Back to all posts</a>
        </p>
      </div>
      <div class="width-12-12">
        <div class="post-date">
          January 28, 2020 
          
            <span class="tags"><a href="/blog/tag/release">#release</a></span>
          
        </div>
        <h1 class="post-title">Quarkus 1.2.0.Final released - GraalVM 19.3.1 support, Metrics, Cache extension, and more</h1>
        <div class="grid-wrapper">
          <div class="width-8-12 width-12-12-m byline-wrapper">
            
            
              <img class="headshot" src="https://www.gravatar.com/avatar/ec96387a1a8295b6fd6dffb68f80c352">
            
            <p class="byline">By Guillaume Smet</p>
          </div>
          <div class="width-12-12">
              <div class="paragraph">
<p>It has been one month since your last Quarkus fix and you are getting used to our frequent releases so here comes 1.2.0.Final.
We have been hard at work to bring a lot of exciting new features:
GraalVM 19.3.1 support is finally there,
we added a new Cache extension to easily cache everything,
we added default metrics for several extensions,
our HashiCorp Vault support was greatly improved and more&#8230;&#8203;</p>
</div>
<div class="paragraph">
<p>Eager to migrate your existing applications? Here is <a href="https://github.com/quarkusio/quarkus/wiki/Migration-Guide-1.2">our migration guide for 1.2.0.Final</a>.</p>
</div>
<div class="paragraph">
<p>Excited to learn more about all this? Let&#8217;s detail a bit more all these new features.</p>
</div>
<div class="sect1">
<h2 id="whats-new"><a class="anchor" href="#whats-new"></a>What&#8217;s new?</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="graalvm-19-3-1-support"><a class="anchor" href="#graalvm-19-3-1-support"></a>GraalVM 19.3.1 support</h3>
<div class="paragraph">
<p>1.2.0.Final supports three flavors of GraalVM:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>GraalVM 19.2.1 - JDK 8 (this one will be dropped in 1.3)</p>
</li>
<li>
<p>GraalVM 19.3.1 - JDK 8</p>
</li>
<li>
<p>GraalVM 19.3.1 - JDK 11 (yes, JDK 11!)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Together with Red Hat&#8217;s OpenJDK team and the GraalVM team, we finally got around all the issues we encountered with the 19.3 branch and 19.3.1 brought the latest fixes we needed.</p>
</div>
<div class="paragraph">
<p>Finally, you can start using JDK 11 even when you want to build native executables.
GraalVM for JDK 11 is still in tech preview though.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
<div class="paragraph">
<p>19.3.0 is not supported, you need either 19.2.1 or 19.3.1.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>To summarize, for Quarkus, you can use:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>JDK 8, 11, 12 or 13 in JVM mode - support for JDK 14 is coming in 1.3</p>
</li>
<li>
<p>JDK 8 or 11 to build native executables</p>
</li>
</ul>
</div>
</td>
</tr>
</table>
</div>
</div>
<div class="sect2">
<h3 id="cache-extension"><a class="anchor" href="#cache-extension"></a>Cache extension</h3>
<div class="paragraph">
<p>A brand new Cache extension allows to cache the return values of your CDI beans methods.
It is based on Caffeine and comes with a set of annotations to drive it.</p>
</div>
<div class="paragraph">
<p>In a nutshell, it looks like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">@ApplicationScoped
public class CachedBean {

    @CacheResult(cacheName = "foo")
    public MyObject load(MyKey key)
        // Call expensive service here.
    }

    @CacheInvalidate(cacheName = "foo")
    public void invalidate(MyKey key) {
    }

    @CacheInvalidateAll(cacheName = "foo")
    public void invalidateAll() {
    }
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Want to learn more? We have <a href="/guides/cache">a guide for you</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="metrics"><a class="anchor" href="#metrics"></a>Metrics</h3>
<div class="paragraph">
<p>We are continuously improving the observability of Quarkus and after working on adding default Health probes, we are now working on adding default metrics.</p>
</div>
<div class="paragraph">
<p>In 1.2.0, we added metrics for Agroal (our database connection pool) and Hibernate ORM.
More will follow.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
<div class="paragraph">
<p>If you are looking for a starting point to contribute to Quarkus and want metrics for a particular extension, this would be a good first contribution!</p>
</div>
</td>
</tr>
</table>
</div>
</div>
<div class="sect2">
<h3 id="vault-improvements"><a class="anchor" href="#vault-improvements"></a>Vault improvements</h3>
<div class="paragraph">
<p>We added several improvements to our HashiCorp Vault support:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The Vault Transit Secret Engine is now supported: you can now use Vault for "encryption as a service".
Everything you need to know about it is in <a href="/guides/vault-transit">the dedicated guide</a>.</p>
</li>
<li>
<p>Support for multiple KV paths has been added.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="smallrye-fault-tolerance-4-x"><a class="anchor" href="#smallrye-fault-tolerance-4-x"></a>SmallRye Fault Tolerance 4.x</h3>
<div class="paragraph">
<p>As explained at length in <a href="/blog/quarkus-fault-tolerance-4-0/">this blog post</a>, we have a brand new MicroProfile Fault Tolerance implementation.</p>
</div>
<div class="paragraph">
<p>It should be faster than before (and we have a few more improvements in the works for 1.3) so give it a try and report back if you encounter any issue.</p>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-orm"><a class="anchor" href="#hibernate-orm"></a>Hibernate ORM</h3>
<div class="sect3">
<h4 id="automatic-association-management-disabled"><a class="anchor" href="#automatic-association-management-disabled"></a>Automatic association management disabled</h4>
<div class="paragraph">
<p>The Hibernate ORM enhancement has a feature that automatically manages the associations for you:
you add an element at one end of an association and it&#8217;s automatically added at the other end.</p>
</div>
<div class="paragraph">
<p>This is very practical but doesn&#8217;t work very well in some situations and things can quickly get tricky.
We decided to disable it in Quarkus.</p>
</div>
</div>
<div class="sect3">
<h4 id="more-tuning"><a class="anchor" href="#more-tuning"></a>More tuning</h4>
<div class="paragraph">
<p>You can now configure the following from the <code>application.properties</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Physical naming strategy</p>
</li>
<li>
<p>Implicit naming strategy</p>
</li>
<li>
<p>If identifiers should all be quoted</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>See <a href="/guides/hibernate-orm#hibernate-configuration-properties">our documentation</a> for all the Hibernate ORM configuration properties.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-validator-localization"><a class="anchor" href="#hibernate-validator-localization"></a>Hibernate Validator localization</h3>
<div class="paragraph">
<p>If you configure your Quarkus application to support several locales, Hibernate Validator will now automatically resolve the locale to use from the <code>Accept-Language</code> header if you&#8217;re validating beans or methods in the context of a REST call.</p>
</div>
<div class="paragraph">
<p>More information in the <a href="/guides/validation#validation-and-localization">Validation guide</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="support-for-transaction-observers-in-arc"><a class="anchor" href="#support-for-transaction-observers-in-arc"></a>Support for Transaction observers in ArC</h3>
<div class="paragraph">
<p>ArC, our CDI implementation, now has support for transaction observers, typically <code>@Observes(during = TransactionPhase.AFTER_SUCCESS)</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="more-qute"><a class="anchor" href="#more-qute"></a>More Qute</h3>
<div class="paragraph">
<p>You can now use the Qute template engine when sending emails with the Mailer extension.</p>
</div>
</div>
<div class="sect2">
<h3 id="now-using-ubi-as-base-image"><a class="anchor" href="#now-using-ubi-as-base-image"></a>Now using UBI as base image</h3>
<div class="paragraph">
<p>We used Alpine for a while for our base image for JDK-based Dockerfiles.
We now consistently use UBI images for JDK and native Dockerfiles.</p>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more&#8230;&#8203;</h3>
<div class="ulist">
<ul>
<li>
<p>You can now override the logging configuration of each handler on category level.</p>
</li>
<li>
<p>We upgraded to Hibernate Search 6.0.0 beta3.</p>
</li>
<li>
<p>We now use <code>mongodb-driver-sync</code> instead of the legacy <code>mongo-java-driver</code> artifact</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="full-changelog"><a class="anchor" href="#full-changelog"></a>Full changelog</h3>
<div class="paragraph">
<p>You can get the full changelogs of <a href="https://github.com/quarkusio/quarkus/releases/tag/1.2.0.CR1">1.2.0.CR1</a> and <a href="https://github.com/quarkusio/quarkus/releases/tag/1.2.0.Final">1.2.0.Final</a> on GitHub.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="adopters-md"><a class="anchor" href="#adopters-md"></a>ADOPTERS.md</h2>
<div class="sectionbody">
<div class="paragraph">
<p>To share stories about Quarkus usage, we added <a href="https://github.com/quarkusio/quarkus/blob/master/ADOPTERS.md">an <code>ADOPTERS.md</code> file</a> at the root of the repository.</p>
</div>
<div class="paragraph">
<p>If you are using Quarkus and would like to be interviewed on our blog or simply added to this file, please contact us and we will be happy to oblige.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="contributors"><a class="anchor" href="#contributors"></a>Contributors</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Quarkus has now <a href="https://github.com/quarkusio/quarkus/graphs/contributors">215 contributors</a>.
Many many thanks to each and everyone of them.</p>
</div>
<div class="paragraph">
<p>In particular for the 1.2.0 release, thanks to Akito Kidani, Alex Soto, Alexander Zimmermann, Alexey Loubyansky, Anatoly Sablin, Andreas Eberle, Andreas Paschwitz, Andrew Guibert, Andy Damevin, Arne Mejlholm, Bruno Devaux, Clement Escoffier, Damien, David M. Lloyd, David Walluck, Dennis Baerten, Emmanuel Bernard, George Gastaldi, Georgios Andrianakis, Gordon Hutchison, Grzegorz Piwowarek, Guillaume Smet, Gunnar Morling, Gwenneg Lepage, Gytis Trikleris, Harald Reinmueller, Ian Wormsbecker, Ioannis Canellos, Irena Kezic, Jaikiran Pai, Jan Martiska, Jason T. Greene, Johannes, Justin Lee, Ladislav Thon, Loïc Mathieu, Manyanda Chitimbo, Marcel Overdijk, Mark Little, Martin Kouba, Matej Novotny, Matt Berteaux, Matthias Harter, Max Rydahl Andersen, Michael J. Simons, Michal Szynkiewicz, Nayden Gochev, Pavol Loffay, Pedro Igor, Peter Palaga, Rohan Maity, Romain Quinio, Rostislav Svoboda, Sanne Grinovero, Sergey Beryozkin, Stuart Douglas, Stéphane Épardaud, Tobias, Vincent Sevel, Vinícius Ferraz Campos Florentino, x80486 and Yoann Rodière.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="come-join-us"><a class="anchor" href="#come-join-us"></a>Come Join Us</h2>
<div class="sectionbody">
<div class="paragraph">
<p>We value your feedback a lot so please report bugs, ask for improvements&#8230;&#8203; Let&#8217;s build something great together!</p>
</div>
<div class="paragraph">
<p>If you are a Quarkus user or just curious, don&#8217;t be shy and join our welcoming community:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>provide feedback on <a href="https://github.com/quarkusio/quarkus/issues">GitHub</a>;</p>
</li>
<li>
<p>craft some code and <a href="https://github.com/quarkusio/quarkus/pulls">push a PR</a>;</p>
</li>
<li>
<p>discuss with us on <a href="https://quarkusio.zulipchat.com/">Zulip</a> and on the <a href="https://groups.google.com/d/forum/quarkus-dev">mailing list</a>;</p>
</li>
<li>
<p>ask your questions on <a href="https://stackoverflow.com/questions/tagged/quarkus">Stack Overflow</a>.</p>
</li>
</ul>
</div>
</div>
</div>
              
          </div>
          <div class="width-12-12"><div class="share-page">
  <a class="share-linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://quarkus.io/blog/quarkus-1-2-0-final-released/&title=Quarkus 1.2.0.Final released - GraalVM 19.3.1 support, Metrics, Cache extension, and more" rel="nofollow" target="_blank" title="Share on LinkedIn">
    <img src="/assets/images/share-page/icons_social-linkedin.png"/>
  </a>
  <a class="share-twitter" href="https://twitter.com/intent/tweet?text=Quarkus 1.2.0.Final released - GraalVM 19.3.1 support, Metrics, Cache extension, and more&url=https://quarkus.io/blog/quarkus-1-2-0-final-released/&via=quarkusio&related=quarkusio" rel="nofollow" target="_blank" title="Share on Twitter">
    <img src="/assets/images/share-page/icons_social-twitter.png"/>
  </a>
  <a class="share-facebook" href="https://facebook.com/sharer.php?u=https://quarkus.io/blog/quarkus-1-2-0-final-released/" rel="nofollow" target="_blank" title="Share on Facebook">
    <img src="/assets/images/share-page/icons_social-facebook.png"/>
  </a>
  <a class="share-reddit" href="http://www.reddit.com/submit?url=https://quarkus.io/blog/quarkus-1-2-0-final-released/" onclick="window.open(this.href, 'pop-up', 'left=20,top=20,width=900,height=500,toolbar=1,resizable=0'); return false;" title="Share on Reddit" >
    <img src="/assets/images/share-page/icons_social-reddit.png"/>
  </a>
  <a class="share-email" href="mailto:?subject=Quarkus 1.2.0.Final released - GraalVM 19.3.1 support, Metrics, Cache extension, and more&amp;body=Quarkus 1.2.0.Final released - GraalVM 19.3.1 support, Metrics, Cache extension, and more https://quarkus.io/blog/quarkus-1-2-0-final-released/" title="Share via Email" >
    <img src="/assets/images/share-page/icons_social-email.png"/>
  </a>
</div>
</div>
        </div>
      </div>
    </div>
  </div>
</div>

  </div>

  <div class="content project-footer">
  <div class="footer-section">
    <div class="logo-wrapper">
      <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_reverse.svg" class="project-logo" title="Quarkus"></a>
    </div>
  </div>
  <div class="grid-wrapper">
    <p class="grid__item width-3-12">Quarkus is open. All dependencies of this project are available under the <a href='https://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache Software License 2.0</a> or compatible license.<br /><br />This website was built with <a href='https://jekyllrb.com/' target='_blank'>Jekyll</a>, is hosted on <a href='https://pages.github.com/' target='_blank'>Github Pages</a> and is completely open source. If you want to make it better, <a href='https://github.com/quarkusio/quarkusio.github.io' target='_blank'>fork the website</a> and show us what you’ve got.</p>

    
      <div class="width-1-12 project-links">
        <span>Navigation</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="/">Home</a></li>
          
            <li><a href="/guides">Guides</a></li>
          
            <li><a href="/community/#contributing">Contribute</a></li>
          
            <li><a href="/faq">FAQ</a></li>
          
            <li><a href="/get-started">Get Started</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Contribute</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://twitter.com/quarkusio">Follow us</a></li>
          
            <li><a href="https://github.com/quarkusio">GitHub</a></li>
          
            <li><a href="/security">Security&nbsp;policy</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Get Help</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://groups.google.com/forum/#!forum/quarkus-dev">Forums</a></li>
          
            <li><a href="https://quarkusio.zulipchat.com">Chatroom</a></li>
          
        </ul>
      </div>
    

    
      <div class="width-3-12 more-links">
        <span>Quarkus is made of community projects</span>
        <ul class="footer-links">
          
            <li><a href="https://vertx.io/" target="_blank">Eclipse Vert.x</a></li>
          
            <li><a href="https://microprofile.io" target="_blank">Eclipse MicroProfile</a></li>
          
            <li><a href="https://hibernate.org" target="_blank">Hibernate</a></li>
          
            <li><a href="https://netty.io" target="_blank">Netty</a></li>
          
            <li><a href="https://resteasy.github.io" target="_blank">RESTEasy</a></li>
          
            <li><a href="https://camel.apache.org" target="_blank">Apache Camel</a></li>
          
            <li><a href="https://code.quarkus.io/" target="_blank">And many more...</a></li>
          
        </ul>
      </div>
    
  </div>
</div>
  <div class="content redhat-footer">
  <div class="grid-wrapper">
    <span class="licence">
      <i class="fab fa-creative-commons"></i><i class="fab fa-creative-commons-by"></i> <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC by 3.0</a> | <a href="https://www.redhat.com/en/about/privacy-policy">Privacy Policy</a>
    </span>
    <span class="redhat">
      Sponsored by
    </span>
    <span class="redhat-logo">
      <a href="https://www.redhat.com/" target="_blank"><img src="/assets/images/redhat_reversed.svg"></a>
    </span>
  </div>
</div>


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" integrity="sha384-8gBf6Y4YYq7Jx97PIqmTwLPin4hxIzQw5aDmUg/DDhul9fFpbbLcLh3nTIIDJKhx" crossorigin="anonymous"></script>
  <script type="text/javascript" src="/assets/javascript/mobile-nav.js"></script>
  <script type="text/javascript" src="/assets/javascript/scroll-down.js"></script>
  <script src="/assets/javascript/satellite.js" type="text/javascript"></script>
  <script src="https://quarkus.io/guides/javascript/config.js" type="text/javascript"></script>
  <script src="/assets/javascript/search-filter.js" type="text/javascript"></script>
  <script src="/assets/javascript/back-to-top.js" type="text/javascript"></script>
</body>

</html>
